home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
USA Bestseller
/
USA BESTSELLER Vol 1-95 (Hepp-Computer)(1995).iso
/
e044
/
dmorf.doc
< prev
next >
Wrap
Text File
|
1993-08-09
|
23KB
|
644 lines
DMORF Rel 1.1.2 (08/09/93) Documentation
Copyright (c) 1992, 1993, by David K. Mason.
All Right Reserved.
DMorf (Dave's Morphing program) is a small morphing program
that runs in DOS graphics mode. It operates on TGA, GIF,
and IMG files, and produces a bunch of TGA files as output.
You can compile these TGA files using my other program, DTA,
or dump 'em straight out to video if you've got the
hardware.
(note: also take a look at WHATSNEW.DMO... that file is
sometimes more up-to-date than this one is)
---------------------------------------------------------------------
Hardware requirements:
To run DMorf, you MUST have:
1) A VGA monitor
2) At least a '286
3) A mouse with a microsoft-compatible driver
4) *some* extended memory (expanded memory is not useful).
To accomplish any serious work with this program, you SHOULD
have:
1) SVGA board with VESA in BIOS or with a VESA driver.
By default, DMorf will use the 640x480x256 mode. If you use
the /800 command-line switch it'll use 800x600 mode instead.
The /1024 command-line switch tells DMorf to use 1024x768
mode instead.
2) A fast processor *and* numeric coprocessor... DMorf
DRAGS without a copro. Right now the 486DX is the best chip
to have because the coprocessor is integrated on the same
chip. (When the Pentium comes out, it should be fantastic
because of its optimized floating point instructions.)
3) *Lots* of extended memory, unless you're working
with teeny pictures.
This program runs in '286 protected mode, and allows
access to up to 16M of extended memory.
( During the warping process, DMorf creates a buffer
big enough to hold one entire picture, in RGBa (32-bit)
form. That means 256000 bytes if you're working with
320x200 pictures, or 1,228,800 for 640x480, or 1,920,000 for
800x600, or 3,145,728 for 1024x768. )
You can speed DMorf up quite a bit using the /PRELOAD
command-line switch... it loads copies of both pictures into
memory at startup thus when displaying, editing, or
morphing, it won't have to read the pitures from disk.
Also, it causes some intermediate pictures to be stored in
memory instead of saved and loaded from disk.
This can save significant time, but uses a *lot* of
memory.... multiply the numbers in the previous paragraph
by 3 or 4.
---------------------------------------------------------------------
DOS-Extender Files
The DOS-Extender Files from the Borland Pascal compiler
(DPMI16BI.OVL, RTM.EXE, and DPMIINST.EXE) must exist
somewhere in your DOS path, or in the same directory where
you keep DMORF.EXE.... or DMORF will not work at all. These
files are in the DMorf archive.
If you've got an unsupported 286 processor (you'll know,
because DMORF will complain loudly), then you'll have to:
(1) disable any memory management software you have
running (like HIMEM.SYS) and reboot your system.
(2) run the other program in this archive, DPMIINST,
which will configure RTM.EXE for your system
and then
(3) turn any disabled memory managment stuff back on
and reboot your system again.
---------------------------------------------------------------------
Multiple versions:
DMorf 1.1 comes in two varieties: DMORF.EXE and DMORFNC.EXE.
Both versions can run in systems that either have or don't
have math coprocessors, but DMORF.EXE will run much faster
on systems with coprocessors, and DMORFNC will run faster
on systems that DON'T have coprocessors.
If you have a choice, use DMORF.EXE and a coprocessor.
Sorry, but because it uses a different method of
representing floating point numbers, DMORFNC.EXE will not be
able to read mesh files created with versions 1.0 and
earlier of DMorf. You could get around this by loading a
mesh file into DMORF.EXE, saving it in the 1.1 mesh file
format, and then loading the new mesh into DMORFNC.EXE.
---------------------------------------------------------------------
Credits
The warping, morphing, image scaling, and spline algorithms
all come (with modification) from George Wolberg's excellent
book Digital Image Warping. The user interface stuff is all
mine.
Thanks to Michael Day (Knight Software) for making his VESA
BGI graphics driver (BGI256) available.
Thanks to Lutz Kretzschmar for letting me use his SVGA
mouse-handling code, and for all his great ideas for
enhancements.
Thanks to Eric Deren for his neat ideas on manipulating
meshes, and for his contributions to this documentation.
Thanks to all of the Compuserve GRAPHDEV forum gang, and
the Graphics Alternative BBS gang for their suggestions,
and various bugs they've helped me identify.
---------------------------------------------------------------------
Disclaimer
If you use DMorf, you do so at your own risk. I won't be
held responsible if it screws anything up.
---------------------------------------------------------------------
Support
If you've got any requests/bug reports/suggestions, send a
message to:
"David Mason" on the "You Can Call Me Ray" BBS, (708)
358-5611, and on "The Graphics Alternative", (510) 524-2780,
and on "Channel 1" BBS, (617) 354-8873.
"76546,1321" on Compuserve.
From the Internet, it's "76546,1321@compuserve.com"
You'll probably get some kind of a response (maybe sooner,
maybe later).
You could also send paper mail to the address listed a bit
later in this document, but I'm *terrible* at answering my
mail. I much prefer electronic mail.
---------------------------------------------------------------------
The Rules
Feel free to re-upload this program to other bulletin board
systems in its *original, unmodified* form. Don't change
the name of the ZIP file... it's supposed to be called
DMORF111.ZIP (except on Compuserve, where it's called
DMORF.ZIP). You may not repackage it with other software.
You may not repackage it with your own tutorial. I feel
like an idiot having to make these demands, but people have
been doing these things.
Do not include this on a disk along with any magazine,
book, hardware product, or other software product without my
permission.
---------------------------------------------------------------------
Money matters
DMorf is a shareware program. If you think this program is
worth it, send some money or some computer hardware or
something to:
David K. Mason
P.O. Box 181015
Boston, MA 02118
I think $35 is an appropriate amount, but feel free to
send more or less.
---------------------------------------------------------------------
How to use DMorf:
To get started with DMorf, type "DMORF <file1> <file2>"
The files can be TGA (16, 24, or 32, compressed or
uncompressed), Vivid IMG, or GIF. The two files don't have
to be in the same format, but they do have to share the same
dimensions.
DMorf will then read and display the two pictures in
side-by-side windows. If you only supplied one filename,
then it'll display that picture twice. It scales them so
they'll fit in the windows.
Then, it lays a mesh over the two pictures. In this
program, a mesh is represented by a bunch of horizontal and
vertical lines. The points where they intersect can be
adjusted. Initially, there are lines on the four edges of
the picture. There are always the same number of mesh
points defined in the two pictures, though they aren't
always in the same places.
To add a new line to the mesh, move the mouse cursor to
the border around one of the pictures (which one doesn't
particularly matter). Click the *right* mouse button at the
point where you want the line added. (If the cursor is on
the top or bottom border, a vertical line will be added, and
if it's on one of the sides, a horizontal line will be
added.)
To move a vertex, put the mouse cursor over the
intersection of two lines, press the button, and move the
mouse. Let go of the button when you've got the point where
you want it. DMorf will try to prevent you from overlapping
lines. It's possible to defeat it with weird angles.
Don't do that... it's bad.
The point of these meshes is to define the shapes of
the objects in the pictures. The lines should match the
contours of any objects in the scenes.
Move the vertices of the lines so that the lines match
the curves of the objects in the pictures. When you've got
meshes that you're satisfied with, click on the "Go" button
and watch.
After you've saved a your mesh in a .MSH file (using
the Save or SaveAs button), you could start DMorf by just
typing "DMORF MESHFILE.MSH". DMorf will remember the names
of your picture files and any settings particular to your
morph sequence.
---------------------------------------------------------------------
Command Line Options:
Usage:
Dmorf [file 1] [file 2] [meshfile.msh] [options]
Options:
/800 sets display to 800x600
/1024 sets display to 1024x768
/Go tells DMorf to begin morphing immeadiately.
(Note: Requires a meshfile.)
/Preload loads images into memory for quicker access
Except for the fact that [file 1] must come somewhere
before [file 2], the order of parameters doesn't matter.
"dmorf x.tga y.tga xy.msh /800" is identical to
"dmorf /800 x.tga xy.msh y.tga", as far as DMorf is concerned.
If you specify a meshfile on the commandline, then you
don't *have* to type the names of your picture files too because
the picture file names are stored in the meshfile along with all
of the other settings. You only have to type the picture file
names in addition to the meshfile name if you want to load
pictures that are different from the ones that the meshfile
points to.
---------------------------------------------------------------------
DMorf Command Listing
Main Menu
File Dialog
This dialog box consists of all the picture and file
manipulation options and features.
Go
Causes DMorf to start morphing or warping.
Quit
Changed my mind. Get me out of this program NOW. The
escape key does the same thing.
Save
Saves your meshes and settings to the current control
file. It doesn't prompt for a filename unless the mesh is
unsaved.
Save As
Saves your meshes and settings to a user specified
control file. Always prompts for a filename. If no
extension is specified ".MSH" is assumed.
Load
Loads a control file. Updates morph images, meshes and
all DMorf parameters to the ones saved in the control file.
Always prompts for a filename. If no extension is specified
".MSH" is assumed.
Reload
Re-loads the current control file. It doesn't prompt
for a filename unless the mesh is unsaved.
About
Displays DMorf copyright information.
Settings
This displays the Settings dialog.
Settings/Morph Switches dialog
This dialog box consists of the options that control
the Image Warper and the way it handles the image warping
for both morphs and warps.
Settings/Spline Mesh
Tells the Image Warper to use spline curves instead of
lines when generating the morph or warp files.
Reasons to use splines instead of lines:
(1) The bent image has smooth curves and gradients.
(2) The morph or warp often looks a whole lot more
fluid and lifelike.
Reasons to use lines instead of splines:
(1) Splines sometimes go haywire, with curves going
every which way, overlapping, and (gasp) sometimes even
passing beyond of the picture borders.
(2) You don't want something curved when it warps
(3) lines are faster than splines.
Settings/Spline Intervals
When activated, the Image Warper remaps intervals
between mesh lines using splines instead of linear
interpolation. The result is a more natural looking warp,
and pros and cons are similar to the ones for the Spline
Mesh setting.
Settings/Spline Always
Uses splines for all mesh editing operations, as
opposed to the default lines. Ideally this would be
automatic whenever "Spline Mesh" is selected, but it works
way too slowly except on the fastest of machines.
Settings/Smooth Resampling
With Smooth Resampling activated, DMorf interpolates
new pixel values from all source pixels that should
contribute... if you turn this control off, it just grabs a
the closest pixel value. Nearest neighbor or dumb mode, in
other words. The results in smooth resampling mode look
massively better than dumb mode.
The tradeoff is that dumb mode is massively faster.
Dumb mode is useful in test runs, but don't use it for real
stuff, 'cause it looks like crap.
Settings/Just Warp
In the default morph mode, the DMorf will map points
from the shape of the mesh picture #1 toward the shape of
the mesh on picture #2, and then from 2 toward 1, and cross-
fade. With the Just Warp option activated, it'll just map
points from mesh #1 toward mesh #2, with no fade.
Not too surprisingly, Just Warp mode takes half the
time that Morph mode does.
Settings/Show In-Betweens
DMorf usually displays, while morphing, all the
intermediate pictures it creates. If you turn off this
switch, it won't, and it'll finish quicker.
Settings/Verbose Status
DMorf usually displays the frame number it's working
on, plus the percentage of the warp that it's finished.
With verbose status switched off, it lists only the frame
number.
Settings/Frame Info dialog
This dialog box consists of options that control the
choreography for the Image Warper.
Settings/Frames
This tells DMorf how many pictures to create. If
you're in Morph mode, then this represents how many tween
frames to create. In Just Warp mode, this number includes a
fully-warped final frame.
Settings/First Frame
First Frame specifies the first frame to render in the
range 0 to Last. Useful if you only need part of a morph.
Settings/Last Frame
Specifies the final frame to render in the range First
to Frames.
Settings/Warp 1/2
This setting determines the speed of the warping mesh.
Specifically, the number determines at which percent of the
morph the mesh should be warped halfway between the before
and after meshes.
Settings/Fade 1/2
This setting determines the speed of the crossfade
during a morph. Specifically, the number determines at
which percent of the morph the fade should be halfway
between the before and after images.
This setting has no effect if the Just Warp option is
active.
Colors
This displays the Colors dialog.
Colors/Mesh
The three sliders in the Mesh dialog box control the
red, green, and blue component colors of the warp meshes.
Colors/Alpha
The three sliders in the Alpha dialog box control the
red, green, and blue component colors of the color used to
represent pixels that are more than 50% transparent.
Colors/Gamma Settings
Color values in computer graphic images are based on
linear intensity values. In programs that deal with 24 bit
color, each pixel color is stored as one byte for each
component color of red, green, and blue. A pixel value of
(127,127,127) has half the intensity of a pixel value of
(254,254,254). However, video equipment and the human eye
responds non linearly to intensity. So the color
(254,254,254) will not appear twice as intense as the color
(127,127,127). To fix this phenomena, especially when
outputting to video, the image can be Gamma Corrected. The
gamma correction is calculated for every pixel using the
gamma value, which represents the non linearity of the
monitor. Typical values of gamma are usually around 2.0.
Using an excessively large gamma will make your image very
bright and will reduce the contrast. A small gamma will
usually result in a dark image. NTSC standard gamma
correction is 2.2. Gamma should not be applied to a
computer image more than once.
Colors/Gamma Settings/File
This value specifies the gamma correction value that's
already been applied to the picture.
Colors/Gamma Settings/Disp
This value specifies the new gamma correction value for
the screen.
Pictures
This displays the pictures dialog.
Pictures/Input Files dialog
This dialog box allows user specification of the input
files.
Pictures/Before
Specifies the name of the picture to morph from.
Pictures/After
Specifies the name of the picture to morph to.
Pictures/Background
Specifies the name of the picture to overlay the
morphed frames onto assuming the morph pictures have
transparency. (NOTE: this option currently has no effect.
In the future, when DMorf shells out to DTA, it'll use this
value to build the DTA command-line.)
Pictures/TGA Switches dialog
This dialog box allows the user to specify what flavor
of TGA files DMorf creates.
Pictures/Bottom Up
Tells DMorf whether to create TGA files that begin at
the bottom of the screen, or at the top of the screen. Some
programs can only read one or the other variety. (DTA can
read both, but prefers bottom-to top) Not to be confused
with "bottoms up!"
Pictures/32-bit
Tells DMorf whether to create 24-bit or 32-bit TGA
files. The only reason you might want to use 32-bit TGA
files is if you're planning to do compositing. Some
programs can only read 24-bit TGA files. (DTA can read
either)
Pictures/RLE
Tells DMorf whether or not to create run-length encoded
(compressed) TGA files. Compressed TGA files are almost
always smaller than non-compressed, but some programs can't
read them. (DTA can)
Pictures/Output Files dialog
This dialog box allows the user to specify options for
the output files.
Pictures/Prefix
Prefix specifies the prefix for the saved TGA files.
Default for morphs is MORF and for warps is WARP.
Max (maximize)
Displays just the selected image much larger on the
screen and switches to the Maximize dialog. This gives
finer control over the mesh control points.
Max/Other
This option toggles the display between the Before and
after pictures.
Max/Zoom In
This allows you to further zoom the display for
detailed adjustment of the mesh control points. To use,
select Zoom In, then move the mouse cursor to a corner of
the section you want to magnify. Click and drag the mouse
to place the opposite corner. The display will then show
the selected area in the aspect you selected; no aspect
ratio correction is done.
Max/Zoom In/Colors
This displays the colors dialog. See description under
the Main Menu.
Max/Zoom In/Zoom Out
This unzooms the view and returns you to the Maximize
dialog.
Max/Zoom In/Settings
This displays the settings dialog. See description
under the Main Menu.
Max/Zoom In/Spline
This gives you a preview of what splines for the
current mesh points would look like. It converts the lines
on the screen to splines temporarily. Press and hold.
Max/Main
This returns you to the Main Menu.
Max/Colors
This displays the colors dialog. See description under
the Main Menu.
Max/Settings
This displays the settings dialog. See description
under the Main Menu.
Max/Spline
This gives you a preview of what splines for the
current mesh points would look like. It converts the lines
on the screen to splines temporarily. Press and hold.
Edit
Displays just the selected image much larger on the
screen and switches to the Edit dialog. This gives finer
control over the mesh control points.
Edit/Other
This option toggles the display between the Before and
after pictures.
Edit/Main
This returns you to the Main Menu.
Edit/Colors
This displays the colors dialog. See description under
the Main Menu.
Edit/Flip H
This flips the current image horizontally. (vertical
mirror)
Edit/Save
This saves the current image into a 32-bit TGA file
(so the alpha information is saved) using the original
filename with a .TGA extension. It changes the filename in
the Pictures dialog to this new name, as well.
Edit/Save As
This has the same features as Edit/Save, but saves to a
user-specified filename. The .TGA extension is assumed.
Edit/Alpha Blur
Alpha Blur performs a weighted blur filter against just
the alpha channel. This helps a bit since DMorf's
rudimentary alpha editing doesn't support fractional values.
Edit/Zoom In
This allows you to further zoom the display for
detailed adjustment of the mesh control points. To use,
select Zoom In, then move the mouse cursor to a corner of
the section you want to magnify. Click and drag the mouse
using the left mouse button to place the opposite corner.
The display will then show the selected area in the aspect
you selected; no aspect ratio correction is done.
Edit/Zoom In/Colors
This displays the colors dialog. See description under
the Main Menu.
Edit/Zoom In/Zoom out
This unzooms the view and returns you to the Edit
dialog.
Edit/Key
This allows the user to key out certain colors and give
them complete alpha transparency. To use, select the Key
button, then place the mouse cursor over the color in the
picture that you wish to be given full transparency. Press
the left mouse button, and that color will assume the color
set for alpha in the Colors dialog.
Edit/Tolerance
This tells DMorf how close a pixel's color has to be to
the Key color.
Mesh dialog
This dialog box consists of all the mesh manipulation
options and features.
Hide
Temporarily removes the mesh display from the images.
Useful for image inspection.
Spline
Spline gives you a preview of what splines for the
current mesh points would look like. It converts the lines
on the screen to splines temporarily. Press and hold.
Swap
Swaps the meshes between the two windows.
FlipHz
Flips one of the meshes horizontally.
1->2
Copies the mesh from window 1 (before) to window 2
(after). Replaces whatever mesh was in window 2.
2->1
Copies the mesh from window 2 (after) to window 1
(before). Replaces whatever mesh was in window 1.
Del
Lets you delete a line from the meshes. To use, select
Del, then click on the border of the picture where the line
you want to remove is, as with adding a line. Press the
left mouse button to delete.
Select
The two radio buttons shown here allow you to choose
which mesh is currently selected for mesh and image options
such as Max, Edit, FlipHz and others.